In order for an application program to be practically useful it must be capable of presenting information which reflects cultural preferences (language and conventions) for the users of the application program. Typically, the cultural preference of information provided by an application program is customized for a specific market (geographical region or country). ISO/IEC 9945-1:1990 (IEEE Standard 1003.2-1990) Information Technology-portable Operating System Interface (pOSIX™) Shell and Utilities was established to provide a vehicle for the development of portable application programs. IEEE Standard 1003.1 describes a set of basic system services for input/output, file system access, and process management to be used in the development of application programs. The standard also defines an interface accessible from the C programming language, which provides access to these services and establishes standard semantics and syntax. This interface allows application program developers to write portable applications in the C programming language.
In compliance with IEEE Standard 1003.1, IEEE Standard 1003.2 was developed to facilitate the internationalization of applications which did not require the application program developer to customize the application program for each cultural market. IEEE Standard 1003.2 defines a source code level interface to shell services and common utilities which is independent of IEEE Standard 1003.1. An extension of this standard is the User portability Extension (UpE) (IEEE Standard 1003.2a) that addresses interactive terminal-oriented utilities such as full screen editors.
The IEEE Standards 1003.2 and 1003.2a are based on a “locale” model which provides the binding methodology for combining user preferences for language and conventions with the functions of the internationalized application program at run-time. The locale model describes the user's language or conventions to the application program and conveys it to the application at run-time so that the data is processed and presented correctly according to the needs of the user.
The locale model defines six categories of cultural variables, which are collectively referred to as “locale categories”. The locale categories are:    LC_COLLATE specifies the character collation or ordering sequence.    LC_CTYPE specifies the character attributes and mappings.    LC_MONETARY specifies the monetary formatting.    LC_NUMERIC specifies the numeric data formatting.    LC_TIME specifies the date and time formatting.    LC_MESSAGES specifies the affirmative and negative expressions and language to be used in communication with the user.
Details of these variables can be found in the aforementioned standards which are hereby incorporated by reference.
The locale developer specifies values to each of the locale categories which particularize the type of formatting to be applied to the data to be processed or presented. For example, possible values for the locale category “monetary formatting” would be that for the United States, Germany or France which would result in the monetary data being formatted to be processed or presented according to the currency of the specified country (i.e. dollars, deutsche marks or francs, respectively). When the six locale categories are assigned specific values, they are collectively referred to as a “locale”. The mentioned locale categories are referenced by the internationalized application program as that program is executed.
Additional background information for this subject matter, particularly for the notion and use of “locales” and internationalized application programs, is provided in the following patents, all assigned to International Business Machines Corporation and hereby incorporated by reference.
U.S. Pat. No. 5,835,768, entitled “Computer Operating System providing Means for Formatting Information in Accordance with Specified Cultural preferences”, issued Nov. 10, 1998;
U.S. Pat. No. 5,907,326, entitled “System and Method for Updating Cultural Profiles with Dragging and Dropping Locale Objects”, issued May 25, 1999;
U.S. Pat. No. 5,900,871, entitled “System and Method for Managing Multiple Cultural Profiles in an Information Handling System”, issued May 4, 1999.
While the above standards provide a vehicle to generate internationalized application programs that enable users to vary the cultural sensitivity of the programs, their use has been cumbersome particularly when network communication in multiple locales is desired. Concurrent communication of information involving multiple locales is hindered by the necessity of the communication of long file names to distinguish between different locales or the transportation of large locale objects themselves on the network. Further, industry locale naming conventions that use mixed case alphabetics to differentiate between different locales are not supported on all platforms and the use of the long file names to differentiate between different locale names are not supported across all file systems.
It has been previously suggested on pages 197 and 198 of the August 1996 issue of the IBM Technical Disclosure Bulletin to incorporate defined triplets of language, country and encoding identifiers into a single hexadecimal representation known as a locale token. The locale token is compact and precise in its use and definition of the locale information it represents. While the use of a locale token, as described in the above article, is an improvement over previous techniques, it has been proven inadequate in providing locale environment identification and locale version control.
Therefore, it is an object of the present invention to provide a mechanism for locale environment identification and locale version control.
It is a further object of the invention to provide a locale correlator for identification and transmission of locale information within and among processes, components and systems.
It is another object of the invention to minimize the amount of data that must be transmitted to communicate locale information within and among processes, components and systems.